package com.mwh.yuantu.dao;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mwh.yuantu.dao.mapper.FieldInfoMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mwh.yuantu.entity.FieldInfoEntity;

/**
 * (FieldInfo)表数据库访问层
 *
 * @author maweihong
 * @since 2023-11-01 09:47:30
 */
@Service
public class FieldInfoDao extends ServiceImpl<FieldInfoMapper , FieldInfoEntity> {

    @Autowired
	private FieldInfoMapper fieldInfoMapper;

    /**
     * 插入新的字段
     */
    public int insert(FieldInfoEntity fieldInfo) {
        return fieldInfoMapper.insert(fieldInfo);
    }

    /**
     * 更新字段
     */
    public int update(FieldInfoEntity fieldInfo) {
        return fieldInfoMapper.update(fieldInfo);
    }


    /**
     * 批量删除字段
     * @param idArr 主键数组
     * @return
     */
    public int delete(@Param("idArr") String[] idArr) {
        return fieldInfoMapper.delete(idArr);
    }

    /**
     * 获取分类筛选字段的信息
     * @param typeId 分类信息的主键
     * @return
     */
    public List<FieldInfoEntity> listCategoryField(String typeId) {
        return fieldInfoMapper.listCategoryField(typeId);
    }

    /**
     * 校验字段变量名是否重复（排除自己）
     * @param varName 字段变量名
     * @param id 主键
     * @return
     */
    public int countByVarName(@Param("varName") String varName, @Param("id") String id) {
        return fieldInfoMapper.countByVarName(varName,id);
    }

    /**
     * 根据主键查询字段信息
     * @param id 字段主键
     * @return
     */
    public FieldInfoEntity selectById(String id) {
        return fieldInfoMapper.selectById(id);
    }

    /**
     * 根据主键数组，获取字段的变量名集合
     * @param idArr
     * @return
     */
    public List<String> listVarNameByIdArr(@Param("idArr") String[] idArr) {
        return fieldInfoMapper.listVarNameByIdArr(idArr);
    }

    /**
     * 查询分类下的字段列表
     * @param typeId 分类信息主键
     * @return
     */
    public List<FieldInfoEntity> listByTypeId(@Param("typeId") String typeId) {
        return fieldInfoMapper.listByTypeId(typeId);
    }

    /**
     * 查询单选框字段
     * @return
     */
    public List<FieldInfoEntity> listRadio() {
        return fieldInfoMapper.listRadio();
    }

    /**
     * 根据分类id，查询该分类的单选框字段
     * @param typeId 分类信息的id
     * @return
     */
    public List<FieldInfoEntity> listRadioByTypeId(@Param("typeId") String typeId) {
        return fieldInfoMapper.listRadioByTypeId(typeId);
    }

    /**
     * 根据字段变量名，查询字段信息
     * @param varName 字段变量名
     * @return
     */
    public FieldInfoEntity selectByVarName(String varName) {
        return fieldInfoMapper.selectByVarName(varName);
    }

}

